In order for communications to be successful, a receiver should be mated to a transmitter. In other words, both transmitter and receiver should be compatible with a common communication protocol. A communication protocol sets forth the rules governing the electrical, optical, magnetic, timing, coding, and other conventions used for transmitted and received signals. Over the years, a vast number of communication protocols have been developed, and new communication protocols are being developed routinely. Traditionally, communication hardware was designed to accommodate a specific communication protocol or small range of communication protocols. Accordingly, unless special precautions were taken to insure that two communication devices, such as radios, shared a common communication protocol, they may very well have been unable to communicate.
A software-defined radio may be able to use one set of hardware to engage in communications in accordance with a large number of different communication protocols. Each communication protocol is implemented as a result of computer programming which instructs the one set of hardware how to implement the communication protocol. If a different communication protocol is desired, then a new computer program or at least different parameters may be loaded, and the same set of hardware can successfully communicate in accordance with the different communication protocol.
A goal of a software-defined radio design is to make the software which defines the communication protocols as independent of the hardware as possible. Greater independence is achieved when the software needs to account for fewer hardware constraints and needs to directly control fewer aspects of the hardware. With greater software independence comes greater portability of the software to new, updated, and different hardware platforms provided by different manufacturers. In addition, the more independent the software is from the hardware, the easier and faster the software is to develop and test.
Timing is an aspect of communication protocols where software has been particularly dependent upon hardware. In various communication protocols, including time division multiple access (TDMA), frequency hopping, and others, timing is a significant attribute. For timing to be precise, as required for such communication protocols, the software which implements such communication protocols has conventionally been required to directly control the specific hardware on which it is running. Consequently, such software has been difficult and costly to port to other platforms. Such software has also been intolerant of changes in the hardware or in the software directed to non-timing related functions of the protocol, and has been difficult and costly to develop and test.
In a software-defined communication device having an ability to engage in several communication sessions simultaneously, with different sessions using different communication protocols, the direct interface to the communication media, e.g., the air interface for a radio frequency (RF) communication device, is desirably physically separated from and controlled independently from the other signal processing that couples to this direct interface. This architecture permits greater flexibility in applying resources to particular communication session needs and leads to greater reliability. Unfortunately, the benefits this architecture provides are countered by an exacerbated software-controlled timing problem.
Accordingly, what is needed is an architecture that accommodates synchronizing various features of a software-defined communication device while promoting software independence from the hardware.